package com.sg.dto.biz.component.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementWorkTaskPositionMsgHandleComReqDto
 * @使用场景
 */
@Data
public class ImplementWorkTaskPositionMsgHandleComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 高/中/基层操作场景 TOP:高层 MID:中层 BASIC:基层 UCD:UCD框架
     */
    @ApiModelProperty("高/中/基层操作场景")
    private String batchOperateScene;

    /**
     * 工作任务对象类型 PROJECT:项目 TASK:任务 PROBLEM:问题
     */
    @ApiModelProperty("工作任务对象类型")
    private String workTaskObjectType;

    /**
     * 安排主体类型编码 OMS_ORG_ORGANIZATION:组织表 OMS_ORG_DEPT:部门表
     */
    @ApiModelProperty("安排主体类型编码")
    private String arrangeSubjectTypeCode;

    /**
     * 安排主体ID
     */
    @ApiModelProperty("安排主体ID")
    private String arrangeSubjectId;

    /**
     * 部门ID
     */
    @ApiModelProperty("安排部门ID")
    private String deptId;

    /**
     * 组织ID
     */
    @ApiModelProperty("安排组织ID")
    private String organizationId;

    /**
     * 接收部门ID
     */
    @ApiModelProperty("接收部门ID")
    private String receiveSubjectId;

    /**
     * 变更后工作任务状态 TURN_TO_BE_SIGNED:提交转待签收 TURN_TO_ONGOING:提交转进行中 CONFIRM_SIGNED:确认签收 SIGNED_TURN_TO_OVERDUE:待签收转已逾期（作废） ONGOING_TURN_TO_OVERDUE:进行中转已逾期 ONGOING_TURN_TO_SUCCESS:进行中转成功 OVERDUE_TURN_TO_SUCCESS:已逾期转成功 TURN_TO_FAIL:转失败
     */
    @NotNull(message = "变更后工作任务状态不能为空")
    @ApiModelProperty("变更后工作任务状态")
    private String alterWorkTaskState;

    /**
     * 是否逾期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否逾期")
    private String isOverdue;

    /**
     * 负责人账号
     */
    @NotNull(message = "负责人账号不能为空")
    @ApiModelProperty("负责人账号")
    private String principalUserId;

    /**
     * 负责人身份人员ID
     */
    @ApiModelProperty("负责人身份人员ID")
    private String principalOriginalRoleMemberId;

    /**
     * 负责人就职记录ID
     */
    @ApiModelProperty("负责人就职记录ID")
    private String principalInductionRecordId;

    /**
     * 主管账号
     */
    @NotNull(message = "主管账号不能为空")
    @ApiModelProperty("主管账号")
    private String directorUserId;

    /**
     * 主管身份人员ID
     */
    @ApiModelProperty("主管身份人员ID")
    private String directorOriginalRoleMemberId;

    /**
     * 主管就职记录ID
     */
    @ApiModelProperty("主管就职记录ID")
    private String directorInductionRecordId;

}
